<?php

/*
* Class mime_mail
* Original implementation by Sascha Schumann <sascha@schumann.cx>
* Modified by Tobias Ratschiller <tobias@dnet.it>:
* - General code clean-up
* - separate body- and from-property
* - killed some mostly un-necessary stuff
*/

class mime_mail
{
    var $parts;
    var $to;
    var $from;
    var $headers;
    var $subject;
    var $body;

    /*
    * void mime_mail()
    * class constructor
    */
    function mime_mail()
    {
        $this->parts = array();
        $this->to = "";
        $this->from = "";
        $this->subject = "";
        $this->body = "";
        $this->headers = "";
    }

    /*
    * void add_attachment(string message, [string name], [string ctype])
    * Add an attachment to the mail object
    */
    function add_attachment($message, $name = "", $ctype = "application/octet-stream")
    {
        $this->parts[] = array (
        "ctype" => $ctype,
        "message" => $message,
        "encode" => $encode,
        "name" => $name
        );
    }

    /*
    * void build_message(array part=
    * Build message parts of an multipart mail
    */
    function build_message($part)
    {
        $message = $part["message"];
        $message = chunk_split(base64_encode($message));
        $encoding = "base64";
        return "Content-Type: ".$part["ctype"].
        ($part["name"]?"; name = \"".$part["name"]."\"" : "").
        "\nContent-Transfer-Encoding: $encoding\n\n$message\n";
    }

    /*
    * void build_multipart()
    * Build a multipart mail
    */
    function build_multipart()
    {
        $boundary = "b".md5(uniqid(time()));
        $multipart = "Content-Type: multipart/mixed; boundary = $boundary\n\nThis is a MIME encoded message.\n\n--$boundary";

        for($i = sizeof($this->parts)-1; $i >= 0; $i--)
        {
            $multipart .= "\n".$this->build_message($this->parts[$i])."--$boundary";
        }
        return $multipart.= "--\n";
    }

    /*
    * void send()
    * Send the mail (last class-function to be called)
    */
    function send()
    {
        $mime = "";
        if (!empty($this->from))
        $mime .= "From: ".$this->from."\n";
        if (!empty($this->headers))
        $mime .= $this->headers."\n";
           
        if (!empty($this->body))
		{		 
          $this->add_attachment($this->body, "", "text/html;charset=utf-8");
		}
	 
       $mime .= "MIME-Version: 1.0\r\n".$this->build_multipart();
	   
	  
      // $mime .= "X-Mailer:PHP\nX-Priority:2\nContent-Type: text/html; charset=utf-8\nContent-Transfer-Encoding: 7bit\nMIME-Version: 1.0".$this->build_multipart();
        
       //$mime = "From: $from_name <$from_email>\nX-Mailer:PHP\nX-Priority:2\nContent-Type: text/html; charset=iso-8859-1\nContent-Transfer-Encoding: 7bit\nMIME-Version: 1.0";
		

		 mail($this->to, $this->subject, "", $mime);
    }
}; 

?>